<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <style>
      /* 填写样式 */
      a {
        color: #00bc9b;
      }
    </style>
  </head>

  <body>
    <!-- 填写标签 -->
    <div id="jsContainer">
      这里会给出一段随机文本，可能包含一些链接，比如https://www.baidu.com，或者
      www.baidu.com?from=onlineExam，如果出现链接文本，请给该链接文本加上链接标签，用户点击后能直接在新窗口中打开该链接。
    </div>
    <script type="text/javascript">
        /**
         * 正则表达式替换的题，我们之前写过，看过之前的博客的小友应该很熟悉了，
         * 我们是是很简略的匹配了一下，通过判断第一个捕获是否存在确定是否要默认http，
         * 怕小友忘了，提醒一下?:是声明不捕获这个组，
         * 还有什么要注意的呢，target="_blank"记得加🤣🤣🤣
         */
      // 填写JavaScript
      function link() {
        let textDom = document.getElementById("jsContainer");
        textDom.innerHTML = textDom.innerHTML.replace(
          /(http(?:s)?:\/\/)?(www.[1-9a-zA-Z\?\=\#\.]+)/g,
          (...args) =>
            args[1]
              ? `<a target="_blank" href="${args[1]}${args[2]}">${args[1]}${args[2]}</a>`
              : `<a target="_blank" href="http://${args[2]}">${args[2]}</a>`
        );
      }

      //测例
      function aaa() {
        var content = " www.Testhaha.com?id=1#justtest ";
        var div = document.getElementById("jsContainer");
        div.innerHTML = content;
        link();
        var aLink = div.getElementsByTagName("a") || [];
        var result =
          aLink.length === 1 &&
          aLink[0].getAttribute("href") ===
            "http://www.Testhaha.com?id=1#justtest" &&
          aLink[0].getAttribute("target") === "_blank" &&
          aLink[0].innerHTML === "www.Testhaha.com?id=1#justtest";
        return result;
      }
      console.log(aaa());
    </script>
  </body>
</html>
